package com.myzl.coal.service;

import com.myzl.coal.domain.CommandRecord;
import com.myzl.coal.dto.SendCmdDTO;

import java.util.List;

/**
 * 命令下发记录Service接口
 *
 * @author myzl
 * @date 2022-10-26
 */
public interface ICommandRecordService {
    /**
     * 查询命令下发记录
     *
     * @param id 命令下发记录主键
     * @return 命令下发记录
     */
    public CommandRecord selectCommandRecordById(String id);

    /**
     * success
     *
     * @param id
     * @return boolean
     * @author wzb
     * @date 2022/11/1
     * @description
     */
    public boolean success(String id);

    /**
     * 命令成功
     * @param id 主键id
     * @param callBackCmd 参数
     * @return 结果
     */
    public boolean success(String id,String callBackCmd);

    /**
     * fail
     *
     * @param id
     * @return boolean
     * @author wzb
     * @date 2022/11/1
     * @description
     */
    public boolean fail(String id);

    /**
     * 命令失败
     * @param id 主键id
     * @param callBackCmd 命令参数
     * @return 结果
     */
    public boolean fail(String id,String callBackCmd);

    /**
     * selectByDevice
     *
     * @param commandRecord
     * @return com.myzl.coal.domain.CommandRecord
     * @author wzb
     * @date 2022/11/1
     * @description
     */
    public CommandRecord selectByDevice(CommandRecord commandRecord);

    /**
     * 查询命令下发记录列表
     *
     * @param commandRecord 命令下发记录
     * @return 命令下发记录集合
     */
    public List<CommandRecord> selectCommandRecordList(CommandRecord commandRecord);


    /**
     * 新增命令下发记录
     *
     * @param commandRecord 命令下发记录
     * @return 结果
     */
    public int insertCommandRecord(CommandRecord commandRecord);

    /**
     * 插入命令
     * @param sendCmdDTO 命令实体类
     * @return 结果
     */
    public CommandRecord insertCommandRecord(SendCmdDTO sendCmdDTO);

    /**
     * 命令结果
     * @param messageId id
     * @return 结果
     */
    public boolean commandResult(String messageId);

    /**
     * 修改命令下发记录
     *
     * @param commandRecord 命令下发记录
     * @return 结果
     */
    public int updateCommandRecord(CommandRecord commandRecord);

    /**
     * 批量删除命令下发记录
     *
     * @param ids 需要删除的命令下发记录主键集合
     * @return 结果
     */
    public int deleteCommandRecordByIds(String[] ids);

    /**
     * 删除命令下发记录信息
     *
     * @param id 命令下发记录主键
     * @return 结果
     */
    public int deleteCommandRecordById(String id);
}
